/**
 * 驼峰转下划线
 * @param str
 * @returns
 */
export const camelToUnderline = (str: string) => {
  return str.replace(/([A-Z])/g, '_$1').toLowerCase();
};
/**
 * 下划线转驼峰
 * @param str
 * @returns
 */
export const underlineToCamel = (str: string) => {
  // 分割字符串并过滤空字符串
  const parts = str.split('_').filter((part) => part);

  if (parts.length === 0) return '';

  // 首段保持不变，后续段首字母大写
  return (
    parts[0] +
    parts
      .slice(1)
      .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
      .join('')
  );
};
